Skip to content

feat: add logging configuration and SSE event discrimination support#81

Open
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-24T11-09Z
Open

feat: add logging configuration and SSE event discrimination support#81
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-24T11-09Z

Conversation

@fern-api
Copy link
Contributor

@fern-api fern-api bot commented Mar 24, 2026

Version Bump: Removed public methods parserCreateJob(InputStream, String), parserCreateJob(InputStream, String, MediaType), and related overloads from LabReportClient - existing callers will get compile errors.

  • The SDK now supports configurable logging through the new LogConfig option in ClientOptions. Logging is silent by default and must be explicitly enabled. Enhanced SSE streaming support includes new methods for handling event-level discriminated unions. Some InputStream-based file upload methods have been removed in favor of File-based approaches.
  • The parserCreateJob methods in RawLabReportClient that accepted InputStream parameters have been removed. Replace calls with the File-based alternatives: parserCreateJob(File file, BodyCreateLabReportParserJob request) or parserCreateJob(File file, BodyCreateLabReportParserJob request, RequestOptions requestOptions). New optional parameters are available for enhanced lab test configuration including lab account targeting and appointment notes.
  • The SDK now supports additional optional fields across multiple models: ManualConnectionData includes SDK version tracking and granted permissions, AppointmentRescheduleRequest supports appointment notes, ClientFacingOrder adds clinical notes functionality, and Address model supports access notes. AggregateExprArg union type now includes DerivedReadinessColumnExpr support.
  • The SDK now supports additional fields in order and lab models: statusDetail in ClientFacingOrderEvent, orderTransaction in LabResultsRaw, and accessNotes in address types. The GetOrderTransactionResponse.status field is now strongly typed as OrderTransactionStatus enum instead of String. The deprecated jobId field has been removed from ParsingJob.
  • The SDK now supports derived readiness column expressions in query operations through QueryGroupByItem and QuerySelectItem. Address handling has been enhanced with an optional access notes field for delivery instructions.
  • The getMarkers() method now supports a new lab_slug parameter for more flexible lab filtering. Additionally, all marker-related methods now include improved documentation that clarifies the distinction between orderable markers and reflex markers.
  • The SDK now supports configurable logging with debug, info, warn, and error levels. New CompendiumClient and LabAccountClient provide access to additional API endpoints. Added support for new lab providers including Sonora Quest and Samsung Health integration.
  • The SDK now includes a CompendiumClient for searching and converting compendium data through the v3/compendium endpoints. Additionally, a new SseEventParser utility class provides enhanced support for parsing Server-Sent Events with polymorphic types.
  • New compendium search and conversion capabilities available through ConvertCompendiumBody and SearchCompendiumBody request classes. The SDK now includes a LabAccountClient with getTeamLabAccounts method for lab account management.
  • New lab account management client available with RawLabAccountClient.getTeamLabAccounts() method for retrieving team lab accounts. Lab test orders now support a clinicalNotes field for additional clinical information.
  • Request builder classes now support additional properties through new additionalProperty() and additionalProperties() methods. This enables forward compatibility with future API changes and allows custom key-value pairs to be included in request payloads.
  • New additionalProperty() and additionalProperties() methods available on all request builders for convenient management of custom properties.
  • New additionalProperty() and additionalProperties() builder methods available on all vitals request classes. These methods allow passing custom properties beyond the predefined request fields, enabling greater flexibility when querying vitals data.
  • New additionalProperty() and additionalProperties() methods are now available on all vitals request builders, allowing custom properties to be added to requests for enhanced flexibility.
  • The SDK now supports additional properties handling in all builder classes. Use the new additionalProperty() and additionalProperties() methods when building requests to attach custom metadata or handle unknown fields. Also added support for appointment notes in booking requests.
  • The SDK now includes a new CanonicalCandidate class for biomarker normalization with support for LOINC codes, aliases, confidence scores, and provider mapping. All builder classes now support additionalProperty() and additionalProperties() methods for extended metadata handling.
  • New optional appointmentNotes field available on ClientFacingAppointment class. The SDK now supports setting and retrieving appointment notes through the getAppointmentNotes() method and builder pattern.
  • New additionalProperty() and additionalProperties() methods available on builder interfaces, enabling dynamic property assignment for API response objects that may contain unknown fields.
  • New builder methods additionalProperty() and additionalProperties() are now available on various data type builders, enabling flexible handling of custom fields in API responses.
  • New additionalProperty() and additionalProperties() builder methods available on all data model objects. These methods allow setting custom properties that will be preserved during API serialization.
  • New ClientFacingLabAccount type available for managing laboratory account information. New webhook events ClientFacingLabReportParsingJobCreatedEvent and ClientFacingLabReportParsingJobUpdatedEvent added for lab report parsing job notifications.
  • New additionalProperty() and additionalProperties() methods available on builders for all client-facing data types. These methods enable setting additional properties for better extensibility and forward compatibility with API responses.
  • New additionalProperty() and additionalProperties() methods are now available on builder classes, allowing flexible addition of custom key-value pairs to objects.
  • New builder methods additionalProperty() and additionalProperties() are now available on all client-facing model builders, allowing dynamic addition of custom properties during object construction.
  • New builder methods additionalProperty() and additionalProperties() are now available on all client-facing type builders, allowing custom key-value pairs to be added during object construction.
  • The SDK now supports compendium lab conversion with new CompendiumSearchLabs enum for lab provider selection and ConvertCompendiumResponse class for handling conversion results. Additional readiness data capabilities are available through new DerivedReadinessColumnExpr types. Builder classes now include methods for setting additional properties on response objects.
  • New additionalProperty() and additionalProperties() methods are now available on builder classes, allowing you to include custom key-value pairs in your objects. A new GetTeamLabAccountsResponse type has also been added for retrieving team lab account information.
  • New builder methods additionalProperty() and additionalProperties() are now available on all grouped response type builders, enabling custom property assignment during object construction.
  • New additionalProperty() and additionalProperties() methods available on all grouped data type builders for setting custom properties with fluent chaining.
  • The SDK now provides additional builder methods for setting custom properties on type objects. New additionalProperty() and additionalProperties() methods are available on builder classes, allowing dynamic property assignment at runtime. Additionally, new enum values have been added for extended functionality.
  • The SDK now supports setting additional properties on builder objects through new additionalProperty() and additionalProperties() methods. A new PerLabCandidate type is also available for lab result matching functionality.
  • The SDK now supports setting additional properties on model objects via new additionalProperty() and additionalProperties() builder methods. Two new provider types are available: TANDEM_SOURCE and SAMSUNG_HEALTH. A new ProviderIdConversionResponse class has been added for provider ID conversion functionality.
  • New compendium search functionality available through SearchCompendiumResponse and RelatedCandidate classes. Added gender field to ResultMetadata with support for male, female, and other values. Enhanced builder patterns across all data classes with additionalProperty methods for extensibility.
  • The SDK now supports US state codes through the new UsState enum and user address handling via the UserAddress class. All builder classes now include additionalProperty() and additionalProperties() methods for flexible JSON field handling.
  • New builder methods available for setting custom additional properties on workout data types (WorkoutColumnExpr, WorkoutDurationTimeseriesExpr, and WorkoutV2InDb). These methods allow for more flexible data structure configuration when building workout objects.

This release adds configurable logging capabilities and enhanced SSE streaming 
support for event-level discrimination. The logging system is silent by default 
and requires explicit configuration. The SSE enhancements enable proper handling 
of discriminated union types at the event envelope level.

Key changes:
- Add LogConfig support to ClientOptions with optional logging() builder method
- Add new SSE_EVENT_DISCRIMINATED stream type with fromSseWithEventDiscrimination() factory methods
- Add SSEEventDiscriminatedIterator for parsing SSE streams with event-level discrimination
- Remove InputStream-based parserCreateJob() overloads from LabReportClient (File-based methods remain)
- Update parserCreateJob() documentation to clarify support for multiple files

🌿 Generated with Fern
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants